#ifndef TCPCLIENT_H
#define TCPCLIENT_H

#include <QObject>
#include <QTcpSocket>

class TcpClient : public QObject
{
    Q_OBJECT
public:
    explicit TcpClient(QObject *parent = nullptr);
    ~TcpClient();

    // 连接到服务器
    bool connectToServer(const QString &host, quint16 port);
    // 向服务器发送数据
    void sendData(const QByteArray &data);
    // 断开与服务器的连接
    void disconnectFromServer();

signals:
    // 收到服务器数据时触发的信号
    void signalNewData(const QByteArray &data);
    // 与服务器连接状态变化时触发的信号
    void signalConnectionStatus(bool isConnected);

private slots:
    // 读取服务器数据的槽函数
    void slotReadyRead();
    // 连接状态变化的槽函数
    void slotStateChanged(QAbstractSocket::SocketState state);

private:
    QTcpSocket *m_socket; // TCP 客户端套接字
};

#endif // TCPCLIENT_H
